package fuxi;

import java.io.*;
import java.util.ArrayList;

public class demo6 {

    /* 案例分析
     把若干学生对象 ，保存到集合中。
     把集合序列化。
     反序列化读取时，只需要读取一次，转换为集合类型。
     遍历集合，可以打印所有的学生信息*/
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //序列化流复习
        Student s1 = new Student("张三", 18, "北京");

        Student s2 = new Student("李四", 19, "上海");

        Student s3 = new Student("王五", 20, "广州");
        //创建集合存储学生对象

        ArrayList<Student> list1 = new ArrayList<>();
        list1.add(s1);
        list1.add(s2);
        list1.add(s3);

        //创建序列号流，把对象写道本地文件去
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.txt"));

        oos.writeObject(list1);

        oos.close();

        System.out.println("序列化成功");
        //创建一个反序列化流把本地文件的序列化对象读出来

        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.txt"));

        ArrayList<Student> list2 = (ArrayList<Student>)ois.readObject();
        for (Student student : list2) {
            System.out.println(student);
        }

        ois.close();

    }
}
